package proceso.carga.sector;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;


import modelo.sector.CaracteristicaSector;
import modelo.sector.Sector;

/**
 * Carga un sector que puede estar compuesto por una o mas poligonales
 * 
 * @author edgar
 * 
 * Se utiliza cuando un sector posee varias poligonales.
 * Estructura global
 * Archivo 1. Sector y su descripcion, luego en cada linea el archivo donde esa cada una de las poligonales,
 * los archivos poseen la informacion de cada poligonal.
 * 
 */
public class CargaSector {


	private String error;
	private Sector sector;
	
	public String getError() {
		return error;
	}
	public void setError(String error) {
		this.error = error;
	}
	public Sector getSector() {
		return sector;
	}
	public void setSector(Sector sector) {
		this.sector = sector;
	}


	/*
	 * Parametros :
	 * nombre del archivo de entrada
	 * nobre del sector
	 */
	public boolean cargar(String archivoSector, String nombreSector, List<String> listaCaracteristica) {
		boolean resultado;
		sector = new Sector();
		sector.setNombre(nombreSector);
		sector.inicializarSector();
		for(int i = 0; i<listaCaracteristica.size(); i++) {
			CaracteristicaSector carSec = new CaracteristicaSector();
			carSec.setSector(sector);
			carSec.setDescripcion(listaCaracteristica.get(i));
			sector.agregarCaracteristica(carSec);
		}
		LectorPoligonal lectorPol = new LectorPoligonal();
		resultado = lectorPol.leer(archivoSector);
		if(resultado) {
			for(int i=0; i<lectorPol.getListaPoligonal().size(); i++) {
				lectorPol.getListaPoligonal().get(i).calcularMaxMin();
				sector.agregarPoligonal(lectorPol.getListaPoligonal().get(i));
				lectorPol.getListaPoligonal().get(i).setSector(sector);
			}
		}
		else{
			error = lectorPol.getError();
			return false;
		}
		return true;
	}
}
